﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Text;
using hcom;

namespace hcms
{
    public class Global : System.Web.HttpApplication
    {
		public static hcms.Admin.Model model = new hcms.Admin.Model();

        void Application_Start(object sender, EventArgs e)
        {
			try
			{
				throw (new Exception("-- Application_Start"));
			}
			catch (Exception ex)
			{
				new hcom.hLog().Write("Global.asax", ex);
			}
		}

        void Application_End(object sender, EventArgs e)
        {
			try
			{
				throw (new Exception("-- Application_End"));
			}
			catch (Exception ex)
			{
				new hcom.hLog().Write("Global.asax", ex);
			}
		}

		void Application_Error(object sender, EventArgs e)
		{
			// 所有页面异常都在这里处理
			// 页面显示异常信息。 ?? 管理页面和前台页面应分别处理
			Exception ex = this.Server.GetLastError().GetBaseException();
			Response.Write(ex.Message);
			Response.End();	// 不发送其它内容

			// 写到日志
			new hcom.hLog().Write(Request.RawUrl, ex);
		}

        void Session_Start(object sender, EventArgs e)
        {
            // 在新会话启动时运行的代码

        }

        void Session_End(object sender, EventArgs e)
        {
            // 在会话结束时运行的代码。 
            // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
            // InProc 时，才会引发 Session_End 事件。如果会话模式设置为 StateServer 
            // 或 SQLServer，则不会引发该事件。
        }


		protected void Application_AuthenticateRequest(object sender, EventArgs e)
		{
			// 身份验证
			model.Authenticate();
		}

    }
}
